package com.unittec.drainage.provider.interceptor;

import com.baomidou.mybatisplus.extension.plugins.tenant.TenantSqlParser;
import com.unittec.drainage.provider.scope.ThreadLocalScope;
import com.unittec.drainage.sdk.root.common.FieldConstants;
import net.sf.jsqlparser.statement.select.PlainSelect;

/**
 * @author wuxinwei
 */
public class TenantSqlParserExt extends TenantSqlParser {

    /**
     * <p>
     * 处理超管 PlainSelect
     * </p>
     *
     * @param plainSelect
     * @param addColumn   是否添加租户列,insert into select语句中需要
     */
    @Override
    protected void processPlainSelect(PlainSelect plainSelect, boolean addColumn) {
        // 机构编码和应用编码为-1的，是超管对应的APP，即后台管理员, 后台管理员登录系统也是一个特殊的应用
        if (!(FieldConstants.SYS_TENANT_ID.equals(ThreadLocalScope.getAuthData().getTenantId()) &&
                FieldConstants.SYS_APP_ID.equals(ThreadLocalScope.getAuthData().getAppId()))) {
            super.processPlainSelect(plainSelect, addColumn);
        }
    }

}
